#include <iostream>
#include <unistd.h>
#include <signal.h>
#include <sys/types.h>
#include <cstdio>
#include <cstdlib>
using namespace std;

void myhandler(int signo)
{
    cout << "process get a signal: " << signo <<" pid:"<<getpid()<<endl;
}


int main()
{
    
    signal(2,myhandler); 

   
    while(true)
    {
       cout << "I am a  process : " << getpid() << endl;
        sleep(1);
    }

    return 0 ; 
}







/*
void Usage(string proc)
{
    cout << "Usage:\n\t" << proc << " signum pid\n\n";
}
// mykill signum pid
int main(int argc, char *argv[])
{
    // signal(2, myhandler);
    
    //signal(SIGABRT, myhandler);
    int cnt = 0;
    while (true)
    {
        cout << "I am a process, pid: " << getpid() << endl;
        sleep(1);
        cnt++;
        for(int i = 1; i <= 31; i++)
        {
             signal(i, myhandler);
        }

        if(cnt % 2 == 0) 
        {
            //kill(getpid(), 2);
            //raise(2);
            //abort();
            // kill(getpid(), 6);
        }
    }

    // if(argc != 3)
    // {
    //     Usage(argv[0]);
    //     exit(1);
    // }
    // int signum = stoi(argv[1]);
    // pid_t pid = stoi(argv[2]);

    // int n = kill(pid, signum);
    // if(n == -1)
    // {
    //     perror("kill");
    //     exit(2);
    // }

    return 0;
}

// // int: 收到了哪一个信号
// void myhandler(int signo)
// {
//     cout << "process get a signal: " << signo <<endl;
//     // exit(1);
// }

*/
/*
int main()
{
     int cnt =0;
    while(true)
    {
       cout << "I am a  process : " << getpid() << endl;
       sleep(1);
       cnt++;

       if(cnt==5)
       {
           kill(getpid(),2);
          
       }
    } 
    return 0;
} */
